home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ____IIIIIIIIRRRRMMMM1111DDDD((((3333FFFF)))) ____IIIIIIIIRRRRMMMM1111DDDD((((3333FFFF))))
-
-
-
- NNNNAAAAMMMMEEEE
- SIIRM1D, DIIRM1D, CIIRM1D, ZIIRM1D - N 1D convolutions in the time
- domain.
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee SSSSIIIIIIIIRRRRMMMM1111DDDD(((( ffff,,,, iiiinnnnccccffff,,,, llllddddffff,,,, iiiiffffxxxx0000,,,, nnnn____ffffxxxx,,,, nnnnyyyy,,,,
- gggg,,,, iiiinnnnccccgggg,,,, iiiiggggxxxx0000,,,, nnnn____ggggxxxx,,,,
- hhhh,,,, iiiinnnncccchhhh,,,, llllddddhhhh,,,, iiiihhhhxxxx0000,,,, nnnn____hhhhxxxx ))))
-
- iiiinnnntttteeeeggggeeeerrrr iiiinnnnccccffff,,,, llllddddffff,,,, iiiiffffxxxx0000,,,, nnnn____ffffxxxx,,,, nnnnyyyy,,,,
- iiiinnnnccccgggg,,,, iiiiggggxxxx0000,,,, nnnn____ggggxxxx,,,,
- iiiinnnncccchhhh,,,, llllddddhhhh,,,, iiiihhhhxxxx0000,,,, nnnn____hhhhxxxx
-
- rrrreeeeaaaallll ffff((((llllddddffff,,,,nnnnyyyy)))),,,, gggg((((****)))),,,, hhhh((((llllddddhhhh,,,,nnnnyyyy))))
-
-
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee DDDDIIIIIIIIRRRRMMMM1111DDDD(((( ffff,,,, iiiinnnnccccffff,,,, llllddddffff,,,, iiiiffffxxxx0000,,,, nnnn____ffffxxxx,,,, nnnnyyyy,,,,
- gggg,,,, iiiinnnnccccgggg,,,, iiiiggggxxxx0000,,,, nnnn____ggggxxxx,,,,
- hhhh,,,, iiiinnnncccchhhh,,,, llllddddhhhh,,,, iiiihhhhxxxx0000,,,, nnnn____hhhhxxxx ))))
-
- iiiinnnntttteeeeggggeeeerrrr iiiinnnnccccffff,,,, llllddddffff,,,, iiiiffffxxxx0000,,,, nnnn____ffffxxxx,,,, nnnnyyyy,,,,
- iiiinnnnccccgggg,,,, iiiiggggxxxx0000,,,, nnnn____ggggxxxx,,,,
- iiiinnnncccchhhh,,,, llllddddhhhh,,,, iiiihhhhxxxx0000,,,, nnnn____hhhhxxxx
-
- ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn ffff((((llllddddffff,,,,nnnnyyyy)))),,,, gggg((((****)))),,,, hhhh((((llllddddhhhh,,,,nnnnyyyy))))
-
-
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee CCCCIIIIIIIIRRRRMMMM1111DDDD(((( ffff,,,, iiiinnnnccccffff,,,, llllddddffff,,,, iiiiffffxxxx0000,,,, nnnn____ffffxxxx,,,, nnnnyyyy,,,,
- gggg,,,, iiiinnnnccccgggg,,,, iiiiggggxxxx0000,,,, nnnn____ggggxxxx,,,,
- hhhh,,,, iiiinnnncccchhhh,,,, llllddddhhhh,,,, iiiihhhhxxxx0000,,,, nnnn____hhhhxxxx ))))
-
- iiiinnnntttteeeeggggeeeerrrr iiiinnnnccccffff,,,, llllddddffff,,,, iiiiffffxxxx0000,,,, nnnn____ffffxxxx,,,, nnnnyyyy,,,,
- iiiinnnnccccgggg,,,, iiiiggggxxxx0000,,,, nnnn____ggggxxxx,,,,
- iiiinnnncccchhhh,,,, llllddddhhhh,,,, iiiihhhhxxxx0000,,,, nnnn____hhhhxxxx
-
- ccccoooommmmpppplllleeeexxxx ffff((((llllddddffff,,,,nnnnyyyy)))),,,, gggg((((****)))),,,, hhhh((((llllddddhhhh,,,,nnnnyyyy))))
-
-
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ZZZZIIIIIIIIRRRRMMMM1111DDDD(((( ffff,,,, iiiinnnnccccffff,,,, llllddddffff,,,, iiiiffffxxxx0000,,,, nnnn____ffffxxxx,,,, nnnnyyyy,,,,
- gggg,,,, iiiinnnnccccgggg,,,, iiiiggggxxxx0000,,,, nnnn____ggggxxxx,,,,
- hhhh,,,, iiiinnnncccchhhh,,,, llllddddhhhh,,,, iiiihhhhxxxx0000,,,, nnnn____hhhhxxxx ))))
-
- iiiinnnntttteeeeggggeeeerrrr iiiinnnnccccffff,,,, llllddddffff,,,, iiiiffffxxxx0000,,,, nnnn____ffffxxxx,,,, nnnnyyyy,,,,
- iiiinnnnccccgggg,,,, iiiiggggxxxx0000,,,, nnnn____ggggxxxx,,,,
- iiiinnnncccchhhh,,,, llllddddhhhh,,,, iiiihhhhxxxx0000,,,, nnnn____hhhhxxxx
-
- ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx ffff((((llllddddffff,,,,nnnnyyyy)))),,,, gggg((((****)))),,,, hhhh((((llllddddhhhh,,,,nnnnyyyy))))
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- ____IIIIIIIIRRRRMMMM1111DDDD((((3333FFFF)))) ____IIIIIIIIRRRRMMMM1111DDDD((((3333FFFF))))
-
-
-
- CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
- ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooonnnnvvvv....hhhh>>>>
-
- vvvvooooiiiidddd ssssiiiiiiiirrrrmmmm1111dddd(((( ffffllllooooaaaatttt ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt llllssssffff,,,, iiiinnnntttt iiiiffffxxxx0000,,,, iiiinnnntttt nnnn____ffffxxxx,,,,
- iiiinnnntttt nnnn____sssseeeeqqqq,,,,
- ffffllllooooaaaatttt ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiiggggxxxx0000,,,, iiiinnnntttt nnnn____ggggxxxx,,,,
- ffffllllooooaaaatttt ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt llllddddhhhh,,,, iiiinnnntttt iiiihhhhxxxx0000,,,, iiiinnnntttt nnnn____hhhhxxxx ))))
-
- vvvvooooiiiidddd ddddiiiiiiiirrrrmmmm1111dddd(((( ddddoooouuuubbbblllleeee ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt llllddddffff,,,, iiiinnnntttt iiiiffffxxxx0000,,,, iiiinnnntttt nnnn____ffffxxxx,,,,
- iiiinnnntttt nnnn____sssseeeeqqqq,,,,
- ddddoooouuuubbbblllleeee ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiiggggxxxx0000,,,, iiiinnnntttt nnnn____ggggxxxx,,,,
- ddddoooouuuubbbblllleeee ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt llllddddhhhh,,,, iiiinnnntttt iiiihhhhxxxx0000,,,, iiiinnnntttt nnnn____hhhhxxxx ))))
-
- vvvvooooiiiidddd cccciiiiiiiirrrrmmmm1111dddd(((( ccccoooommmmpppplllleeeexxxx ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt llllddddffff,,,, iiiinnnntttt iiiiffffxxxx0000,,,, iiiinnnntttt nnnn____ffffxxxx,,,,
- iiiinnnntttt nnnn____sssseeeeqqqq,,,,
- ccccoooommmmpppplllleeeexxxx ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiiggggxxxx0000,,,, iiiinnnntttt nnnn____ggggxxxx,,,,
- ccccoooommmmpppplllleeeexxxx ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt llllddddhhhh,,,, iiiinnnntttt iiiihhhhxxxx0000,,,, iiiinnnntttt nnnn____hhhhxxxx ))))
-
- vvvvooooiiiidddd zzzziiiiiiiirrrrmmmm1111dddd(((( zzzzoooommmmpppplllleeeexxxx ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt llllddddffff,,,, iiiinnnntttt iiiiffffxxxx0000,,,, iiiinnnntttt nnnn____ffffxxxx,,,,
- iiiinnnntttt nnnn____sssseeeeqqqq,,,,
- zzzzoooommmmpppplllleeeexxxx ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiiggggxxxx0000,,,, iiiinnnntttt nnnn____ggggxxxx,,,,
- zzzzoooommmmpppplllleeeexxxx ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt llllddddhhhh,,,, iiiinnnntttt iiiihhhhxxxx0000,,,, iiiinnnntttt nnnn____hhhhxxxx ))))
-
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- SIIRM1D, DIIRM1D, CIIRM1D and DIIRM1D compute N 1D convolutions in the
- time domain :
-
- h(i,j) = beta * h(i,j) + alpha * Sum[ f(k,j) * g(i-k) ] with j=1,...,N
-
- _IIRM1D can be used instead of _IIR2D when the 2D filter can be
- decomposed into the convolution of two 1D filters.
-
- For example:
- ------------------ ------------------ ------------------
- | 0.25 -.50 0.25 | | 0. -.50 0. | | 0. 0. 0. |
- | -.50 1.00 -.50 | = | 0. 1.00 0. | (*) | -.50 1.00 -.50 |
- | 0.25 -.50 0.25 | | 0. -.50 0. | | 0. 0. 0. |
- |________________| |________________| |________________|
-
- In these special cases, filtering an Image (NxN) by a Filter (MxM) can
- requires:
- only 2 * M * N * N flop (using "diirm1d" twice)
- as much as M * M * N * N flop (using "diir2d")
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- ____IIIIIIIIRRRRMMMM1111DDDD((((3333FFFF)))) ____IIIIIIIIRRRRMMMM1111DDDD((((3333FFFF))))
-
-
-
- USAGE:
- 1. Suppose you want to:
- filter a 2D "image" f(0:449,0:699) along the first dimension ,
- by a 1D filter g(-15:15),
- put the result in h(0:299,0:699),
- you can use:
-
- call diirm1d( f(0,0), 449-0+1, 1, 0, 449-0+1, 699+1,
- g(-15), 1, -15, 15-(-15)+1,
- $ h(0, 0), 229-0+1, 0, 299-0+1 )
-
- 2. Suppose you want to:
- filter a 2D "image" f(0:449,0:699) along the Second dimension ,
- by the Fisrt line of g(0:149,-15:15),
- put the result in h(-25:449,0:699),
- you can use:
-
- call diirm1d( f(0, 0), 699-0+1, 1, 0, 449-0+1,
- $ g(0, -15), 1, 149-25+1, -15, 15,
- $ h(0, 0), 449-0+1, 1, 0, 449-0+1 )
-
-
- PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
- ffff Vector containing the 2D sequence "f"
-
- iiiinnnnccccffff Increment between two successive values of "f"
-
- llllddddffff Increment between two successive 1D sequnce of "f"
-
- iiiiffffxxxx0000 Index of the first element of each 1D sequence of "f"
-
- nnnn____ffffxxxx Number of elements of each sequence of "f"
-
- nnnnyyyy Number of 1D sequences to filter
-
-
- gggg Vector containing the 1D sequence "g"
-
- iiiinnnnccccgggg Increment between two successive values of "g"
-
- iiiiggggxxxx0000 Index of the first element of each 1D sequence of "g"
-
- nnnn____ggggxxxx Number of elements of Each sequence of "g"
-
-
- hhhh Vector containing the 2D sequence "h"
-
- iiiinnnncccchhhh Increment between two successive values of "h"
-
- llllddddhhhh Increment between two successive 1D sequnce of "h"
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- ____IIIIIIIIRRRRMMMM1111DDDD((((3333FFFF)))) ____IIIIIIIIRRRRMMMM1111DDDD((((3333FFFF))))
-
-
-
- iiiihhhhxxxx0000 Index of the first element of each 1D sequence of "h"
-
- nnnn____hhhhxxxx Number of elements of Each sequence of "h"
-
-
-
- IIIIMMMMPPPPOOOORRRRTTTTAAAANNNNTTTT NNNNOOOOTTTTEEEE::::
- The array pointers must all point to the first element of the
- array "(ifx0,ify0)", "(igx0,igy0)" and "(ihx0,ihy0)". If "f"
- for example is defined as
- dimension f(-25:45,10:21)
- Then "diirm1d" must be called with the following parameters
- call diirm1d( f(-25,10),(45-(-25)+1),-25,45,10,21 ... )
-
-
- AAAAUUUUTTTTHHHHOOOORRRRSSSS
- Jean-Pierre Panziera, 1/12/93.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-